package offer2

/*
*
https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/

剑指 Offer 27. 二叉树的镜像
请完成一个函数，输入一个二叉树，该函数输出它的镜像。

例如输入：
4
/   \
2     7
/ \   / \
1   3 6   9

镜像输出：
4
/   \
7     2
/ \   / \
9   6 3   1
*/
func mirrorTree(root *TreeNode) *TreeNode {
	//执行深度搜索
	DFS(root)
	return root
}

func DFS(root *TreeNode) {

	if root == nil { //根节点为空, 直接返回
		return
	}

	tmp := root.Left //将根节点的左右节点进行互换
	root.Left = root.Right
	root.Right = tmp

	DFS(root.Left) //递归翻转左右节点
	DFS(root.Right)
}
